<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <!-- 拆炸弹 -->
    <script>
      var decrypt = function (code, k) {
        // 给定一个长度为原来两倍的数组
        const codeArr = [...code, ...code]
        if (k > 0) {
          // 对这个数组进行遍历
          return code.map((item, index) => {
            // 返回从当前索引+1,一直到索引+1+k的数组，获取其累加和
            return codeArr.slice(index + 1, index + 1 + k).reduce((pre, val) => pre + val)
          })
        } else if (k === 0) {
          // 全部替换为0
          return code.fill(0)
        } else {
          const len = code.length
          return code.map((item, index) => {
            // 从两倍数组末尾向前取，即当前索引为len+index, 向前一直到len+index+k结束，获取其累加和
            return codeArr.slice(len + index + k, len + index).reduce((pre, val) => pre + val)
          })
        }
      }
      console.log(decrypt([5, 7, 1, 4], 3))
    </script>
  </body>
</html>
